컴퓨터 프로그래밍의 예술
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
'컴퓨터 프로그래밍의 예술'은 도널드 커누스가 저술한 컴퓨터 과학 분야의 고전적인 저서이다. 1962년에 기획되어 1968년에 제1권이 출판되었으며, 현재까지 여러 권으로 구성되어 있다. 이 책은 알고리즘, 자료 구조, 산술, 정렬, 검색 등 다양한 컴퓨터 프로그래밍 관련 주제를 다루며, 각 권은 여러 장과 절로 세분화되어 있다. '컴퓨터 프로그래밍의 예술'은 튜링상을 비롯한 여러 상을 수상했으며, 빌 게이츠가 추천할 정도로 컴퓨터 과학 분야에 큰 영향력을 미쳤다. 한국어판은 류광 교수의 번역으로 출판되었으며, 컴퓨터 과학 전공자들의 필독서로 꼽힌다.
1962년 1월, 도널드 커누스는 캘리포니아 공과대학 수학과 대학원생 시절, 애디슨-웨슬리(Addison-Wesley) 출판사로부터 컴파일러 설계에 관한 책을 써달라는 요청을 받았다. 커누스는 더 광범위한 주제를 다루는 것을 제안했고, 같은 날 12개의 챕터 제목 목록을 제시했다.[6] 1965년 6월에 완성된 첫 번째 초고는 3000페이지 분량의 손으로 쓴 원고였다.[7] 출판사는 손으로 쓴 1.5페이지 정도가 인쇄된 1페이지로 번역된다고 말했고, 이는 커누스가 대략 2000페이지 분량의 자료를 가지고 있었음을 의미한다.
《컴퓨터 프로그래밍의 예술》은 여러 권으로 구성된 책으로, 각 권은 컴퓨터 과학의 특정 분야를 심도 있게 다룬다.
2. 역사
'컴퓨터 프로그래밍의 예술' 제1권 '기본 알고리즘'은 1963년부터 1968년까지 캘리포니아 공과대학과 버로스에서 일하면서 완성하는 데 5년이 걸렸다. 커누스는 제1권 헌사에 650형 컴퓨터에 대한 애정을 담아 헌정했다.[8]
출판사 과학 고문이었던 리처드 S. 바르가의 열정적인 지지를 받아 출판사는 커누스의 확장된 계획을 받아들였다. 확장된 버전에서 이 책은 각각 한두 챕터로 구성된 7권으로 출판될 예정이었다.[10] 1965년 원고의 100페이지 미만이었던 제7장의 증가로 인해, 제4권 계획은 이후 제4A, 제4B, 제4C, 제4D 등으로 확장되었다.
1976년, 커누스는 제2권의 제2판을 준비하면서 조판 문제에 직면했다. 초판에 사용된 활자체 스타일을 더 이상 사용할 수 없었기 때문이다. 1977년, 그는 더 적합한 조판 시스템을 만들기로 결정했고, 8년 후 현재 모든 권에 사용되는 TEX를 개발했다.
이 프로젝트는 1962년에 시작되어, 처음에는 총 12장으로 구성된 1권으로 완결할 예정이었으나, 이후 7권 계획으로 확대되었다. 처음 3권은 1968년, 1969년, 1973년에 출판되었다. 제4권 집필은 1973년에 시작되었지만, 1976년에 제2권의 제2판 준비를 하면서 조판 문제로 인해 연기되었다.
총 7권으로 출간될 예정이며, 2024년 기준으로 제1권부터 제4B권(구판 제6분책)까지 출간되었다.
향후 계획은 스탠퍼드 대학교 웹사이트 내 커누스용 디렉토리에 있는 [https://www-cs-faculty.stanford.edu/~knuth/taocp.html 페이지]에서 확인할 수 있다. 제5권은 구문적 알고리즘, 제6권은 문맥 자유 문법 이론, 제7권은 컴파일러 기술에 관한 내용이다.
3. 내용 구성
1968년에 제1권 초판이 출판된 이후 지속적으로 개정 및 추가 출판되었다. 2024년을 기준으로 제1권부터 제4B권(구판 제6분책)까지 간행되었다.
; 일본어 번역판
사이언스사에서 1978년부터 1986년까지 원저 제2권까지의 내용을 번역하여 총 4권으로 출판하였다. 번역 과정에서 시마우치 고이치는 "가타카나 술어를 가능한 한 추방"하고 "좋은 일본어"로 번역하는 방침을 세웠다.[23] 번역자들은 가타카나 외래어 대신 아름다운 일본어 술어를 만들기 위해 노력했으며, 용어 번역에 대한 미래의 기대를 언급하기도 했다.[24]
21세기에 들어 아스키에서 새로운 일본어 번역판이 출판되었고, 이후 KADOKAWA 드왕고의 아스키 드왕고[25] 레이블에서 재간행되고 있다.
; 영어 원서
; MIX와 MMIX
《컴퓨터 프로그래밍의 예술》에 나오는 예제는 MIX 어셈블리 언어(MIXAL)를 사용하며, 이는 MIX라는 가상의 컴퓨터에서 실행된다. 현재 MIX는 RISC 버전인 MMIX로 대체되고 있다.[11] MIX에서 MMIX로의 전환은 크누스가 자원 봉사자의 도움을 요청한 대규모 프로젝트였다. GNU MDK[11]와 같은 소프트웨어를 통해 MIX 아키텍처를 에뮬레이션할 수 있다. 크누스는 알고리즘의 속도와 메모리 사용량을 판단하기 위해 어셈블리 언어의 사용이 필수적이라고 생각한다.
MIX는 당시 존재했던 다른 컴퓨터와 매우 유사했지만 더 나은 형태였다. 'MIX'라는 이름은 로마 숫자로 1009이며, 당시 여러 컴퓨터의 일련 번호를 참고하여 지어졌다. MMIX는 로마 숫자로 2009이며, 크누스는 MMIX가 MIX보다 훨씬 더 낫다고 주장한다.
3. 1. 제1권: 기본 알고리즘
커누스는 1963년부터 1968년까지 캘리포니아 공과대학과 버로스에서 일하면서 '컴퓨터 프로그래밍의 예술' 제1권 '기본 알고리즘'을 완성하는 데 5년이 걸렸다.[7] 1962년 1월, 애디슨-웨슬리(Addison-Wesley)는 그에게 컴파일러 설계에 관한 책을 써달라고 요청했고, 그는 더 광범위한 범위를 제안하며 같은 날 12개의 챕터 제목 목록을 생각해냈다.[6] 1965년 6월에 완성된 첫 번째 초고는 3000페이지의 손으로 쓴 원고였다.[7] 출판사는 손으로 쓴 1.5페이지 정도가 인쇄된 1페이지로 번역된다고 말했고, 이는 그가 대략 2000페이지 분량의 자료를 가지고 있었음을 의미하며, 이는 처음 3권의 출판된 분량과 거의 일치한다.
제1권은 알고리즘, 수학적 귀납법, 점근적 분석 등의 기본 개념과[7] 스택(stack), 큐(queue), 데크(dequeue), 트리(tree), 동적 메모리 할당 등의 정보 구조를 다룬다.[7] '기본 알고리즘'의 2.5절은 동적 저장소 할당에 관한 내용으로, 버로스의 메모리 관리 방식에 사용되었다. 커누스는 "2.5절에서 소개된 '경계 태그' 방식은 B5000 컴퓨터용 제어 프로그램에 사용하기 위해 1962년에 저자가 설계했다"고 주장한다.
또한, 이 책에서는 가상의 컴퓨터인 MIX와 그 어셈블리 언어인 MIXAL을 소개한다. 현재 MIX 컴퓨터는 RISC 버전인 MMIX 컴퓨터로 대체되고 있다.[11] MIX에서 MMIX로의 전환은 커누스가 자원 봉사자의 도움을 요청한 대규모 진행 프로젝트였다. GNU MDK[11]와 같은 소프트웨어는 MIX 아키텍처를 에뮬레이션할 수 있도록 제공된다. 커누스는 알고리즘의 속도와 메모리 사용량을 판단하기 위해 어셈블리 언어의 사용이 필수적이라고 생각한다.
MIX는 당시 존재했던 다른 컴퓨터와 매우 유사했지만 더 나은 형태를 띄었다. 'MIX'라는 이름은 로마 숫자로 1009이며, 이는 당시 여러 컴퓨터의 일련 번호를 포함하는 다음 공식으로 주어진다: (360 + 650 + 709 + U3 + SS80 + 1107 + 1604 + G2- + B220 + S2000 + 920 + 601 + H800 + PDP-4 + 11)/16 = 1009. MMIX라는 이름은 로마 숫자로 2009이며, 커누스는 MMIX가 MIX보다 훨씬 더 낫다고 주장한다.
커누스는 제1권 헌사에 다음과 같이 썼다.
> 이 책 시리즈는 케이스 공과대학에 한때 설치되었던 650형 컴퓨터에 애정을 담아 헌정하며, 수많은 즐거운 저녁 시간을 기억합니다.[8]
서문에서 그는 먼저 아내 질에게, 다음으로 대부분의 프로그램 테스트에 B220 및 B5500 컴퓨터를 사용할 수 있게 해준 버로스, 그리고 캘리포니아 공과대학, 국립 과학 재단, 해군 연구소에 감사를 표했다.[9]
3. 2. 제2권: 준수치 알고리즘
Volume 2: Seminumerical Algorithms영어는 1969년에 처음 출판되었고, 1997년에 세 번째 판이 출판되었다.[2] 1976년 커누스는 제2권의 제2판을 준비하면서 다시 조판해야 했는데, 초판에 사용된 활자체 스타일(활자라고 불림)을 더 이상 사용할 수 없었다. 1977년에 그는 더 적합한 것을 만들 시간을 보내기로 결정했고, 8년 후 그는 현재 모든 권에 사용되는 TEX를 개발하였다.
제2권은 다음 내용들을 다룬다.3. 3. 제3권: 정렬과 검색
Sorting and Searching영어은 정렬 알고리즘과 탐색 알고리즘을 다룬다.
'''제5장: 정렬 알고리즘'''에서는 순열의 조합적 성질, 내부 정렬, 최적 정렬, 외부 정렬 등을 다룬다.소제목 내용 5.1. 순열의 조합적 성질 5.1.1. 전위, 5.1.2. 멀티셋의 순열, 5.1.3. 런, 5.1.4. 태블로 및 대합 5.2. 내부 정렬 5.2.1. 삽입 정렬, 5.2.2. 교환 정렬, 5.2.3. 선택 정렬, 5.2.4. 병합 정렬, 5.2.5. 분배 정렬 5.3. 최적 정렬 5.3.1. 최소 비교 정렬, 5.3.2. 최소 비교 병합, 5.3.3. 최소 비교 선택, 5.3.4. 정렬 네트워크 5.4. 외부 정렬 5.4.1. 다중 병합 및 대체 선택, 5.4.2. 다상 병합, 5.4.3. 캐스케이드 병합, 5.4.4. 테이프 역방향 읽기, 5.4.5. 진동 정렬, 5.4.6. 테이프 병합에 대한 실용적 고려 사항, 5.4.7. 외부 기수 정렬, 5.4.8. 2 테이프 정렬, 5.4.9. 디스크 및 드럼 5.5. 요약, 역사 및 참고 문헌
'''제6장: 검색 알고리즘'''에서는 순차 검색, 키 비교에 의한 검색, 디지털 검색, 해싱, 보조 키에 대한 검색 등을 다룬다.소제목 내용 6.1. 순차 검색 6.2. 키 비교에 의한 검색 6.2.1. 정렬된 테이블 검색, 6.2.2. 이진 트리 검색, 6.2.3. 균형 트리, 6.2.4. 다중 트리 6.3. 디지털 검색 6.4. 해싱 6.5. 보조 키에 대한 검색
3. 4. 제4A권: 조합적 알고리즘, 제1부
제4A권은 조합적 알고리즘을 다루는 첫 번째 책이다. 7장은 조합적 탐색에 대한 내용을 담고 있으며, 세부 주제는 다음과 같다.[10]3. 5. 제4B권: 조합적 알고리즘, 제2부
2024년을 기준으로, 『컴퓨터 프로그래밍의 예술』 제4B권(구판 제6분책)까지 간행되었다. 제4B권은 조합적 알고리즘 제2부를 다룬다.
카도카와 드왕고일본어사 아스키 드왕고일본어판 『컴퓨터 프로그래밍의 예술』은 다음을 포함한다:
4. 한국어판
류광 교수가 번역한 한빛미디어판이 널리 읽히고 있다. 출판된 책은 다음과 같다.
권 | 제목 | 출판일 | 쪽수 | ISBN |
---|---|---|---|---|
1 | 기초 알고리즘 | 2006년 9월 18일 | 798쪽 | |
2 | 준수치적 알고리즘 | 2007년 9월 13일 | 931쪽 | |
3 | 정렬과 검색 | 2008년 1월 28일 | 937쪽 | |
4A | 조합적 알고리즘 | 2013년 8월 10일 | 1184쪽 |
5. 평가 및 영향
《컴퓨터 프로그래밍의 예술》은 현재 미완성이지만, 이미 컴퓨터 과학 분야에서 큰 업적으로 평가받고 있다. 1974년, 커누스는 이 저서를 통해 학계에 기여한 공로를 인정받아 튜링상(컴퓨터 과학계의 노벨상)을 수상했다.[21]
2009년에 출간된 제4A권(구판 제1분책)에서는 미나토 신이치가 고안한 데이터 구조인 영 억제 이진 결정 다이어그램(ZDD)이 소개되기도 했다.[22]
6. 판본 정보
Addison-Wesley영어에서 영어판이 출판되고 있다. 한국어판은 한빛미디어에서 출판되고 있다.[22] 일본어판은 과거 사이언스사에서 출판되었으며,[23][24] 21세기에 들어 아스키에서 새로운 일본어 번역판이 출판되었다. 그 후 KADOKAWA 드왕고의 출판 레이블 '아스키 드왕고'[25]에서 2015년 6월 제1권부터 다시 간행되고 있다. 그 외 러시아어, 중국어 등으로 번역되어 있다.
다음은 현재 출판된 판본을 권 번호 순으로 정리한 목록이다.
권 번호 | 제목 | 출판사 | 출판일 | ISBN |
---|---|---|---|---|
제1권 | 기초 알고리즘 | Addison-Wesley영어 | 1997년 | |
제2권 | 준수치적 알고리즘 | Addison-Wesley영어 | 1997년 | |
제3권 | 정렬과 검색 | Addison-Wesley영어 | 1998년 | |
제4A권 | 조합 알고리즘, 제1부 | Addison-Wesley영어 | 2011년 | |
제4B권 | 조합 알고리즘, 제2부 | Addison-Wesley영어 | 2023년 | |
제1권, 소책자 1 | MMIX – 새로운 밀레니엄을 위한 RISC 컴퓨터 | Addison-Wesley영어 | 2005년 2월 14일 | |
제4권, 소책자 7 | 제약 만족 | Addison-Wesley영어 | 2025년 2월 3일 (예정) |
다음은 한국어판 출판 정보이다.
권 번호 | 제목 | 번역자 | 출판사 | 출판일 | ISBN |
---|---|---|---|---|---|
제1권 | 기초 알고리즘 | 류광 | 한빛미디어 | 2006년 9월 18일 | |
제2권 | 준수치적 알고리즘 | 류광 | 한빛미디어 | 2007년 9월 13일 | |
제3권 | 정렬과 검색 | 류광 | 한빛미디어 | 2008년 1월 28일 | |
제4A권 | 조합적 알고리즘 | 류광 | 한빛미디어 | 2013년 8월 10일 |
참조
[1]
웹사이트
note for box 3, folder 1
https://oac.cdlib.or[...]
2019-12-03
[2]
서적
Pearson InformIT webpage book Content tab
https://www.informit[...]
Addison-Wesley Professional.
2022-09-28
[3]
서적
Pearson InformIT webpage
https://www.informit[...]
Addison-Wesley Professional.
2022-09-28
[4]
웹사이트
CP 2022 All Questions Answered, July 31–August 5, 2022, Haifa, Israel
https://cp2022.a4cp.[...]
2022-07-22
[5]
웹사이트
An Interview with Donald E. Knuth
https://conservancy.[...]
2001-11-08
[6]
웹사이트
Oral History of Donald Knuth
https://archive.comp[...]
2007
[7]
웹사이트
This Week's Citation Classic
https://garfield.lib[...]
1993-08-23
[8]
문서
The dedication was worded slightly differently in the first edition.
[9]
웹사이트
The Art of Computer Programming (TAOCP) 2nd Edition, 1973
https://cs.stanford.[...]
2019-08-03
[10]
서적
Mathematical People: Profiles and Interviews
A. K. Peters
2008
[11]
웹사이트
GNU MDK - GNU Project - Free Software Foundation
https://www.gnu.org/[...]
2022-10-23
[12]
웹사이트
Donald E. Knuth – A. M. Turing Award Winner
https://amturing.acm[...]
[13]
간행물
100 or so Books that shaped a Century of Science
https://www.american[...]
Sigma Xi, The Scientific Research Society
1999-11
[14]
웹사이트
Bill Gates once said 'definitely send me a résumé' if you finish this fiendishly difficult book
https://www.business[...]
2016-04
[15]
뉴스
Frances E. Holberton, 84, Early Computer Programmer
https://www.nytimes.[...]
2001-12-17
[16]
웹사이트
The Computer Scientist Who Can't Stop Telling Stories
https://www.quantama[...]
2020-04-16
[17]
웹사이트
TAOCP – Future plans
https://cs.stanford.[...]
[18]
웹사이트
TAOCP – Brochure
https://cs.stanford.[...]
[19]
웹사이트
TAOCP – Announcement Fascicle 7 in printing
https://www-cs-facul[...]
2024-12-09
[20]
간행물
Review: ''The Art of Computer Programming, Volume 1. Fundamental Algorithms'' and ''Volume 2. Seminumerical Algorithms'' by Donald E. Knuth
https://www.ams.org/[...]
1973
[21]
웹사이트
Donald ("Don") Ervin Knuth - A.M. Turing Award Laureate
https://amturing.acm[...]
Association for Computing Machinery
2024-10-04
[22]
문서
湊真一
http://www.lab2.kuis[...]
[23]
서적
基本算法 I 基礎概念
サイエンス社
1978-03-01
[24]
서적
基本算法 II 情報構造
サイエンス社
1978-04-01
[25]
문서
KADOKAWA
http://asciidwango.j[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com